import os

import argparse

from dotenv import load_dotenv


def check_presence_of_env() -> None:
    """ Проверяем присутствие файла .env """
    
    dotenv_path = os.path.abspath(
        os.path.join(os.path.dirname( __file__ ), '.env')
    )
    if os.path.exists(dotenv_path): load_dotenv(dotenv_path)
    else: raise Exception('No .env file found')


class InputDataFromUser:
    """ Получаем входные данные от пользователя """

    def get_base_object_for_arguments(self) -> argparse.ArgumentParser:
        """ Получаем базовый объект для аргументов """

        parser = argparse.ArgumentParser()
        parser.add_argument(
            '-u',
            '--use',
            type=str,
            choices=['scraper', 'bot'],
            help='Что использовать (парсер, бота)'
        )
        parser.add_argument(
            '-m',
            '--mode',
            type=str,
            choices=['update_list_of_tasks'],
            help='Какой режим для парсера использовать'
        )
        return parser


    def get_list_of_passed_arguments(self) -> argparse.Namespace:
        """ Получаем список из переданных аргументов """

        base_object_for_arguments = self.get_base_object_for_arguments()
        return base_object_for_arguments.parse_args()
